package com.foreveross.util;


import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author luofangyi
 *
 */
public class DateUtil {
	
	/**
	 * 将字符串转化成 util.Date
	 * @param strDate		字符串日期
	 * @param format		格式
	 * @return
	 * @throws ParseException 
	 */
	public static Date string2Date(String strDate, String format) throws ParseException
	{
		DateFormat df = new SimpleDateFormat(format);
		Date date = null;
		date = df.parse(strDate);
		return date;
	}
	
	/**
	 * util.Date日期转字符串
	 * @param date			util.Date日期
	 * @param format		格式
	 * @return
	 */
	public static String date2String(Date date, String format) 
	{
		DateFormat df = new SimpleDateFormat(format);
		String strDate;
		strDate = df.format(date);
		return strDate;
	}
	
	public static String getFormatDate(String pattern)
	{
		Date date = new Date() ;
		return getFormatDate(pattern,date) ;
	}
	
	public static String getFormatDate(String pattern,Date date)
	{
		SimpleDateFormat format = new SimpleDateFormat(pattern) ;
		return format.format(date) ;
	}
	/**
	 * 将一种格式的字符串日期转成另外一种格式的字符串
	 * @param strDate1		原日期
	 * @param format1		原日期格式
	 * @param format2		目标日期格式
	 * @return
	 * @throws ParseException 
	 */
	public static String String2String(String strDate1, String format1, String format2) throws ParseException
	{
		Date date = string2Date(strDate1, format1);
		String strDate = date2String(date, format2);
		
		return strDate;
	}
	
	/**
	 * 取得当前日期前后n天的日期
	 * @param ndays 前后n天 后：n > 0  前 n < 0
	 * @param format 日期格式
	 * @return 当前日期前后n天的日期
	 * @throws ParseException 
	 */
	public static String getNdaysAfterDate(int ndays,String format)
	{
		Calendar nowCal = Calendar.getInstance();
		nowCal.add(Calendar.DAY_OF_MONTH, ndays);
		String strDate = date2String(nowCal.getTime(), format);
		return strDate;
	}
}
